package main

import (
	"github.com/micro/go-micro/util/log"
	"ihome/utils"
	"net/http"

	"github.com/julienschmidt/httprouter"
	"github.com/micro/go-micro/web"
	"ihome/ihomeweb/handler"
	_ "ihome/models"
)

func main() {
	// create new web service
	service := web.NewService(
		web.Name("go.micro.web.ihomeweb"),
		web.Version("latest"),
		web.Address(":" + utils.GServerPort),
	)

	// initialise service
	if err := service.Init(); err != nil {
		log.Fatal(err)
	}

	rou := httprouter.New()
	// 映射静态页面
	rou.NotFound = http.FileServer(http.Dir("html"))

	// 获取地区请求
	rou.GET("/api/v1.0/areas", handler.GetArea)
	// 获取session
	rou.GET("/api/v1.0/session", handler.GetSession)
	// 获取首页轮播图
	rou.GET("/api/v1.0/house/index", handler.GetIndex)
	// 获取验证码图片
	rou.GET("/api/v1.0/imagecode/:uuid", handler.GetImageCd)
	// 获取短信验证码
	rou.GET("/api/v1.0/smscode/:mobile", handler.GetSmsCd)
	// 注册
	rou.POST("/api/v1.0/users", handler.Register)
	// 登陆
	rou.POST("/api/v1.0/sessions", handler.Login)
	// 退出登录
	rou.DELETE("/api/v1.0/session", handler.Logout)
	// 获取用户信息
	rou.GET("/api/v1.0/user", handler.GetUserInfo)
	// 上传用户头像
	rou.POST("/api/v1.0/user/avatar", handler.UploadAvatar)
	// 用户认证检查
	rou.GET("/api/v1.0/user/auth", handler.GetUserAuth)
	// 实名认证
	rou.POST("/api/v1.0/user/auth", handler.UserAuth)
	// 获取用户已发布房源
	rou.GET("/api/v1.0/user/houses", handler.GetUserHouses)
	// 发布房源
	rou.POST("/api/v1.0/houses", handler.AddHouses)
	// 上传房屋图片
	rou.POST("/api/v1.0/houses/:id/images", handler.UploadHouseImage)
	// 获取房屋信息
	rou.GET("/api/v1.0/houses/:id", handler.GetHouseInfo)
	// 搜索房屋
	rou.GET("/api/v1.0/houses", handler.GetHouses)

	// 注册服务
	service.Handle("/", rou)

	// run service
	if err := service.Run(); err != nil {
		log.Fatal(err)
	}
}
